/** 个人资料* */
var PersonInfo = {};
// 初始化
PersonInfo.init = function(){
	
	PersonInfo.initBtn();
	
	PersonInfo.initMsg();
}
// 初始化按钮
PersonInfo.initBtn = function(){
	PersonInfo.initChoicePhoto();
	
	//发送验证码
	  $(".verify-code-btn").click(function() {
		var validatePhone = $(this).attr("data") == 2 ? $(".validatePhone").attr('data') : $("#newPhone").val();

		if( isNull(validatePhone)){
			loboxWarningAlert('请填写手机号');
			return false;
		}
	    $this = $(this);
	    countDown(30, $this);
	    var param = {
	      url: 'message/msg',
	      ajaxType: 'POST',
	      code: 'SMS_133405031',
	      extract :'',
	      mobile: validatePhone,
	      params :'',
	      type: $(this).attr("data")
	    }
	  doInvoke(param, function(data) {
//	      if (data.code == code10000) {
	        loboxSucAlert("发送成功");
//	      } else {
//	    	errorAlert(data.message); 	
//	      }
	    });
	  });
};
// 初始化个人资料
PersonInfo.initMsg = function(){
	var param = {
		url:'shop/profile',
		ajaxType:'GET'
	}
	doInvoke(param,function(data){
		if(data.code == code10000){
			if(data.data){
				var msg = data.data;
				if(msg.photo){
					$("#photo").attr('src',msg.photo);
				}
				if(msg.sex && msg.sex == 1){
					$(".person_name").addClass("bg_man").removeClass("bg_woman");
				}else{
					$(".person_name").addClass("bg_woman").removeClass("bg_man");
				}
				$("#name").text(msg.name);
				$("#realName").text(subContent(msg.realName,5,2));
				$("#companyName").text(subContent(msg.companyName,8,2));
				$("#email").text(msg.email);
				$("#qq").text(msg.qq);
				if(msg.phone){
					$("#phone").text(formatPhone(msg.phone));
					$(".validatePhone").text(formatPhone(msg.phone)).attr('data',msg.phone);
					$(".bind_phone").addClass("bind_style").removeClass("unbind_style").text("已绑定手机");
					$(".btn_phone").text("修改");
				}else{
					$("#phone").text("待绑定");
					$(".bind_phone").addClass("unbind_style").removeClass("bind_style").text("未绑定手机");
					$(".btn_phone").text("立即绑定");
				}
				if(msg.nickName){	
					$("#weixin").text(msg.nickName);
					$(".bind_weixin").addClass("bind_style").removeClass("unbind_style").text("已绑定微信");
					$(".btn_weixin").text("修改");
				}else{
					$("#weixin").text("待绑定");
					$(".bind_weixin").addClass("unbind_style").removeClass("bind_style").text("未绑定微信");
					$(".btn_weixin").text("立即绑定");
				}
				// 初始化弹框
				if(msg.photo){
					$("#updatePersonInfoModal .dialog-photo-img").attr('src',msg.photo);
				}
				$("#updatePersonInfoModal input[name='name']").val(msg.name);
				$("#updatePersonInfoModal input[name='realName']").val(msg.realName);
				$("#updatePersonInfoModal select[name='sex']").val(msg.sex);
				$("#updatePersonInfoModal input[name='companyName']").val(msg.companyName);
				$("#updatePersonInfoModal input[name='qq']").val(msg.qq);
				$("#updatePersonInfoModal input[name='email']").val(msg.email);
				
			}
		}else{
			errorAlert(data.message);
		}
	});
};
/** 修改个人信息* */
// 显示修改个人信息弹框
PersonInfo.updatePersonInfoModal = function(){
	$("#updatePersonInfoModal").modal('show');
};
// 提交个人信息
PersonInfo.updatePersonInfoSubmit = function(){
	if(isNull($("#updatePersonInfoModal input[name='name']").val())){
		loboxWarningAlert('请填写昵称');
		return ;
	}
	if(isNull($("#updatePersonInfoModal input[name='realName']").val())){
		loboxWarningAlert('请填写真实姓名');
		return ;
	}
	if(isNull($("#updatePersonInfoModal select[name='sex']").val())){
		loboxWarningAlert('请填写性别');
		return ;
	}
	if(isNull($("#updatePersonInfoModal input[name='companyName']").val())){
		loboxWarningAlert('请填写公司名称');
		return ;
	}
	
	var param = {
			url:'/shop/profile',
			ajaxType:'PUT',
			name:$("#updatePersonInfoModal input[name='name']").val(),
			realName:$("#updatePersonInfoModal input[name='realName']").val(),
			sex:$("#updatePersonInfoModal select[name='sex']").val(),
			companyName:$("#updatePersonInfoModal input[name='companyName']").val(),
			qq:$("#updatePersonInfoModal input[name='qq']").val(),
			email:$("#updatePersonInfoModal input[name='email']").val()
	}
	if(!isNull($("#updatePersonInfoModal .dialog-photo-img").attr('data'))){
		param.photo = $("#updatePersonInfoModal .dialog-photo-img").attr('data');
	}
	doInvoke(param,function(data){
		if( data.code == code10000 ){
			$("#updatePersonInfoModal").modal('hide');
			$("#successModal").modal('show');
		}else{
			errorAlert(data.message);
		}
		
	});
};

/** 选择修改头像图片* */
PersonInfo.choicePhotoModal = function(){
	$("#choicePhotoModal").modal('show');
};
// 初始化选择图片控件
PersonInfo.initChoicePhoto = function(){
$(document).ready(function () {
    var d = $(".image-crop > img");
    $(d).cropper({
   	 	aspectRatio: 1,   // 长度 宽度 百分比设置
        preview: ".img-preview",
        done: function (k) {}
    });
    var e = $("#inputImage");
    if (window.FileReader) {
        e.change(function () {
            var k = new FileReader(),
                m = this.files,
                l;
            if (!m.length) {
                return
            }
            l = m[0];
            
	        var imageType = l.name.split(".")[1];
	        if(imageType.toUpperCase() == "JPG" || imageType.toUpperCase() == "PNG" || imageType.toUpperCase() == "JPEG"){
	        	   // --------- 判断文件大小 start --------------------------
	        	     // 判断大小
	            var maxsize = 1*1024*1024;// 1M
		        var errMsg = "上传头像不能超过1M，请重新选择上传！";  
		        var tipMsg = "您的浏览器暂不支持计算上传文件的大小，确保上传文件不要超过1M，建议使用IE、FireFox、Chrome浏览器。";  
		        var filesize = 0;  
		        var obj_file = document.getElementById("inputImage");  
             filesize = obj_file.files[0].size;
             if(filesize == 0){
             	errorAlert(tipMsg);  
             	return;
             }else if(parseInt(filesize) > parseInt(maxsize)){  
             	errorAlert(errMsg);  
             	return; 
             }
	            // -----------判断文件大小 end ---------------------------
	            
                k.readAsDataURL(l);
                k.onload = function () {
                    e.val("");
                    d.cropper("reset", true).cropper("replace", this.result)
                }
            } else {
           	 errorAlert("只能上传jpg，png格式图片，请重新选择文件！");
            }
        })
    } else {
        e.addClass("hide");
    }
    
    var isInputImage = false;
    $("#inputImage").click(function () {
   	 isInputImage = true;
    });
    
    
    // 确认已剪切的图片
    $("#download").click(function () {
        if(!isInputImage){
       	 errorAlert("请选择本地图片后，再点击确认！");
       	 return false;
        }else{
        	PersonInfo.uploadImage(d.cropper("getDataURL"),function(url){
        		$("#choicePhotoModal").modal('hide');
            	$(".dialog-photo-img").attr("src",url).attr('data',url);
        	});
        	
        }
    });
    
    $("#zoomIn").click(function () {
        d.cropper("zoom", 0.1)
    });
    $("#zoomOut").click(function () {
        d.cropper("zoom", -0.1)
    });
    $("#rotateLeft").click(function () {
        d.cropper("rotate", 45)
    });
    $("#rotateRight").click(function () {
        d.cropper("rotate", -45)
    });
    $("#setDrag").click(function () {
        d.cropper("setDragMode", "crop")
    });
    
});
};
// 上传图片
PersonInfo.uploadImage = function(base64Img,callback) {
	$.ajax({
		type:"get",
		url:URL+'shop/qiniu/token',
		dataType:'json',
		async:false,  // false 同步，true异步
		success:function(data) {
			var pic = base64Img.split(',')[1];// "填写你的base64后的字符串";
			var url = "";
			if (window.location.protocol === 'https:') {
				url = 'https://up.qbox.me/putb64/-1';       //现网
			} else {
				url = "http://upload.qiniu.com/putb64/-1";   //本地
			}
			  var xhr = new XMLHttpRequest();
			  xhr.onreadystatechange=function(){
			    if (xhr.readyState==4){
				 	// 转换为json格式
			    	var imgdata  = jQuery.parseJSON(xhr.responseText);
			    	var qiniuImg = "http://p87iripip.bkt.clouddn.com/" + imgdata.key;   // 测试域名
			    	 callback(qiniuImg);
			    }else{
//			    	  errorAlert("上传至云储存失败，您可以重新上传！");
			    }
			  };
			  xhr.open("POST", url, false);   // false 同步，true异步
			  xhr.setRequestHeader("Content-Type", "application/octet-stream");
			  xhr.setRequestHeader("Authorization", "UpToken "+data.uptoken);
			  xhr.send(pic);
		},
		error : function(data) {}
	});	
};

//修改成功更新信息
PersonInfo.success = function(){
	PersonInfo.initMsg();
	//TODO 修改头部信息
	getProfile();
};
/**绑定微信下一步**/
PersonInfo.bindWeixinNext = function(){
	if(isNull($("#bindWeixinModal .valCode").val())){
		loboxWarningAlert('请填写验证码');
		return ;
	}
	
	var param = {
			url:'/weixin/wx/bind',
			ajaxType:"GET",
			isObject:true,
			code:$("#bindWeixinModal .valCode").val(),
			phone:$("#bindWeixinModal .validatePhone").attr('data')
	}
	
	doInvoke(param,function(data){
		if(data.code == code10000){
			$("#bindWeixinModal").modal('hide');
			$("#sweepWeixinModal").modal("show");
			$("#wximg").attr("src","https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+data.data);
			initSock(data.data);	
		}else{
			errorAlert(data.message);
		}
	});	
}

function initSock(ticket){
	var sock = new SockJS("http://socket.longcore.com/wsChat");
	var stomp = Stomp.over(sock);
	stomp.connect(ticket, ticket, function(frame) {
        /** 订阅了/user/queue/notifications 发送的消息,这里雨在控制器的 convertAndSendToUser 定义的地址保持一致,
         *  这里多用了一个/user,并且这个user 是必须的,使用user 才会发送消息到指定的用户。
         *  */
        stomp.subscribe("/user/queue/notifications", function(message) {
			var obj = JSON.parse(message.body);
			if(obj.code == '10005') {//用户已注册
				errFunAlert("微信绑定失败：该微信已绑定其他账号！",function(){
				});
			}else {
				succFunAlert("微信绑定成功！",function(){
					$("#sweepWeixinModal").modal("hide");
					window.location.reload();
				});
			}
			
		});
    });
	
}
/**修改手机号**/
PersonInfo.bindPhoneSubmit = function(){
	if(isNull($("#bindPhoneModal .valCode").val())){
		loboxWarningAlert('请填写验证码');
		return ;
	}
	if(checkPhone($("#bindPhoneModal #newPhone").val())){
		loboxWarningAlert('请填写正确手机号');
		return ;
	}
	
	var param = {
			url:'shop/profile/phone',
			ajaxType:"PUT",
			isObject:true,
			code:$("#bindPhoneModal .valCode").val(),
			phone:$("#bindPhoneModal #newPhone").val()
	}
	
	doInvoke(param,function(data){
		if(data.code == code10000){
			$("#bindPhoneModal").modal('hide');
			$("#successModal").modal('show');
		}else{
			errorAlert(data.message);
		}
	});	
	
	
};